<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:f="livcos.org/ns/xslt/function"
	xmlns:m="livcos.org/ns/xslt/function/math"
	exclude-result-prefixes="f m xs">
	
	<!-- implementation dependent extension functions (Java, Saxon,...) -->
	
	<xsl:function name="f:substring-before-last" as="xs:string">
		<xsl:param name="str"/>
		<xsl:param name="match"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:substring-after-last" as="xs:string">
		<xsl:param name="str"/>
		<xsl:param name="match"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:isValidUrl" as="xs:boolean">
		<xsl:param name="str"/>
		<xsl:value-of select="true()"/>
	</xsl:function>
	
	<xsl:function name="f:extract-path" as="xs:string">
		<xsl:param name="uri"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:node-id" exclude-result-prefixes="#all">
		<xsl:param name="node" as="node()"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:node-by-id" exclude-result-prefixes="#all">
		<xsl:param name="context" as="node()"/>
		<xsl:param name="nodeId" as="xs:string"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:uri" xmlns:uri="java:java.net.URI" exclude-result-prefixes="#all">
		<xsl:param name="str"/>
		<uri/>
	</xsl:function>
	
	<xsl:function name="f:relativize-uri" xmlns:uri="java:java.net.URI">
		<xsl:param name="uri"/>
		<xsl:param name="baseUri"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:request" as="element(response)">
		<xsl:param name="url"/>
		<xsl:param name="spec" as="node()"/>
		<response/>
	</xsl:function>
	
	<xsl:function name="f:request" as="element(response)">
		<xsl:param name="url"/>
		<response/>
	</xsl:function>
	
	<xsl:function name="f:query" as="element(results)">
		<xsl:param name="index"/>
		<xsl:param name="queryString"/>
		<results/>
	</xsl:function>
	
	<xsl:function name="f:db-query" as="element()">
		<xsl:param name="query"/>
		<xsl:param name="connection"/>
		<response/>
	</xsl:function>
	
	<xsl:function name="f:db-meta" as="element()">
		<xsl:param name="schema"/>
		<xsl:param name="connection"/>
		<response/>
	</xsl:function>
	
	<xsl:function name="f:db-meta" as="element()">
		<xsl:param name="schema"/>
		<xsl:param name="scope"/>
		<xsl:param name="connection"/>
		<response/>
	</xsl:function>
	
	<xsl:function name="f:object-available" as="xs:boolean">
		<xsl:param name="objId"/>
		<xsl:value-of select="true()"/>
	</xsl:function>
	
	<xsl:function name="f:find-object" as="xs:string">
		<xsl:param name="baseUri"/>
		<xsl:param name="uri"/>
		<xsl:param name="objName"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:find-objects" as="xs:string*">
		<xsl:param name="baseUris" as="xs:string*"/>
		<xsl:param name="uris" as="xs:string*"/>
		<xsl:param name="objName"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:caller-uri" as="xs:string">
		<xsl:param name="uri"/>
		dummy
	</xsl:function>
	
	<xsl:function name="f:transform" as="node()">
		<xsl:param name="def" as="xs:string?"/>
		<xsl:param name="source" as="node()"/>
		<response/>
	</xsl:function>
	
	<xsl:function name="f:transform" as="node()">
		<xsl:param name="def" as="xs:string?"/>
		<xsl:param name="source" as="node()"/>
		<xsl:param name="params" as="item()*"/>
		<response/>
	</xsl:function>
	
	<xsl:function name="f:transform" as="node()">
		<xsl:param name="def" as="xs:string?"/>
		<xsl:param name="source" as="node()"/>
		<xsl:param name="params" as="item()*"/>
		<xsl:param name="imports" as="xs:string*"/>
		<response/>
	</xsl:function>
	
	<xsl:function name="f:eval" exclude-result-prefixes="#all">
		<xsl:param name="xPath" as="xs:string"/>
		<xsl:param name="nsContext" as="element()"/>
		<xsl:message select="'Dummy function called!'"/>
		dummy
	</xsl:function>
	
	<xsl:function name="m:rad" as="xs:double">
		<xsl:param name="val" as="xs:double"/>
		<xsl:value-of select="0"/>
	</xsl:function>
	
	<xsl:function name="m:sin" as="xs:double">
		<xsl:param name="val" as="xs:double"/>
		<xsl:value-of select="0"/>
	</xsl:function>
	
	<xsl:function name="m:cos" as="xs:double">
		<xsl:param name="val" as="xs:double"/>
		<xsl:value-of select="0"/>
	</xsl:function>
	
	<xsl:function name="m:tan" as="xs:double">
		<xsl:param name="val" as="xs:double"/>
		<xsl:value-of select="0"/>
	</xsl:function>
	
	<xsl:function name="m:sqrt" as="xs:double">
		<xsl:param name="val" as="xs:double"/>
		<xsl:value-of select="0"/>
	</xsl:function>
	
</xsl:stylesheet>
